package cn.vshare.service;

import cn.vshare.entity.Role;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface RoleService {
    /**1
     * 通过角色Id查询角色信息
     * @param role
     * @return
     */
    Role queryRoleById(Role role);

    /**2
     * 通过角色名字查询角色信息
     * @param name
     * @return
     */
    Role queryRoleByName(@Param(value = "name") String name);

    /**3
     * 查询所有角色
     * @return
     */
    List<Role> queryAllRole();

    /**
     * 多条件查询角色
     * @return
     */
    Page<Role> queryByConditions(Map<String, Object> map);

    /**4
     * 新增角色
     * @param role
     */
    int addRole(Role role);

    /**5
     * 更新角色
     * @param role
     */
    int updateRole(Role role);

    /**
     * 删除角色
     * @param id
     * @return
     */
    int deleteRole(String id);

//////////////////////////对于特定角色的1级权限处理模块////////////////////////////////////////

    /*20180920-wyl*/
    /**6
     * 新增权限
     * @param map
     * @return
     */
    int addPermissionFirst2Role(Map<String, Object> map);

    /**7
     * 更新权限
     * @param map
     * @return
     */
    int updatePermissionFirst2Role(Map<String, Object> map);

    /**8
     * 删除权限
     * @param map
     * @return
     */
    int deletePermissionFirst2Role(Map<String, Object> map);

    /**9
     * 通过角色名字查询相关的权限信息
     * @param name
     * @return
     */
    Role queryPermissionFirstByRoleName(@Param(value = "r_name") String name);

    /**10
     * 查询权限
     * @param map
     * @return
     */
    Role queryPermissionFirst2Role(Map<String, Object> map);

    //////////////////////////对于特定角色的2级权限处理模块////////////////////////////////////////

    /*20180920-wyl*/
    /**6
     * 新增权限
     * @param map
     * @return
     */
    int addPermissionSecond2Role(Map<String, Object> map);

    /**7
     * 更新权限
     * @param map
     * @return
     */
    int updatePermissionSecond2Role(Map<String, Object> map);

    /**8
     * 删除权限
     * @param map
     * @return
     */
    int deletePermissionSecond2Role(Map<String, Object> map);

    /**9
     * 通过角色名字查询相关的权限信息
     * @param name
     * @return
     */
    Role queryPermissionSecondByRoleName(@Param(value = "r_name") String name);

    /**10
     * 查询权限
     * @param map
     * @return
     */
    Role queryPermissionSecond2Role(Map<String, Object> map);

}
